import axios from 'axios'
import {baseURL} from '@/lib/index'
class HttpRequest {
  // 设置默认的方法
  constructor(baseUrl = baseURL) {
    // baseUrl = baseUrl || baseUrl = baseURL
    this.baseUrl = baseUrl
    this.queue = {}
  }
  // 通过这个方法返回一个内不的配置
  getInsideConfig() {
    const config = {
      //
      baseUrl: this.baseUrl,
      headers: {}
    }
    return config
  }
  // 拦截器
  interceptors(instance) {
    // 请求拦截器
    instance.interceptors.request.use(config => {
      // 添加一个全局的配置：测试全局loading
      return config
    }, error => {
      return Promise.reject(error)
    })
    // 返回拦截器
    instance.interceptors.response.use(res => {
      // console.log(res)
      return res
    }, error => {
      return Promise.reject(error)
    })
  }
  // 第一个方法,传入一个
  request(options) {
    const instance = axios.create()
    // 将两个对象合并为一个对象
    options = Object.assign(this.getInsideConfig(), options)
    this.interceptors(instance)
    return instance(options)
  }
}
export default HttpRequest
